package com.jyh.db.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class JyhLoanTypeExample {
    /**
     * jyh_loan_type
     */
    protected String orderByClause;

    /**
     * jyh_loan_type
     */
    protected boolean distinct;

    /**
     * jyh_loan_type
     */
    protected List<Criteria> oredCriteria;

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public JyhLoanTypeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public String getOrderByClause() {
        return orderByClause;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public boolean isDistinct() {
        return distinct;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     *
     * @mbggenerated 2017-10-17
     */
    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    /**
     * jyh_loan_type 2017-10-17
     */
    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIDIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIDIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIDEqualTo(Integer value) {
            addCriterion("ID =", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDNotEqualTo(Integer value) {
            addCriterion("ID <>", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDGreaterThan(Integer value) {
            addCriterion("ID >", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDGreaterThanOrEqualTo(Integer value) {
            addCriterion("ID >=", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDLessThan(Integer value) {
            addCriterion("ID <", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDLessThanOrEqualTo(Integer value) {
            addCriterion("ID <=", value, "ID");
            return (Criteria) this;
        }

        public Criteria andIDIn(List<Integer> values) {
            addCriterion("ID in", values, "ID");
            return (Criteria) this;
        }

        public Criteria andIDNotIn(List<Integer> values) {
            addCriterion("ID not in", values, "ID");
            return (Criteria) this;
        }

        public Criteria andIDBetween(Integer value1, Integer value2) {
            addCriterion("ID between", value1, value2, "ID");
            return (Criteria) this;
        }

        public Criteria andIDNotBetween(Integer value1, Integer value2) {
            addCriterion("ID not between", value1, value2, "ID");
            return (Criteria) this;
        }

        public Criteria andTypeNOIsNull() {
            addCriterion("typeNO is null");
            return (Criteria) this;
        }

        public Criteria andTypeNOIsNotNull() {
            addCriterion("typeNO is not null");
            return (Criteria) this;
        }

        public Criteria andTypeNOEqualTo(String value) {
            addCriterion("typeNO =", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNONotEqualTo(String value) {
            addCriterion("typeNO <>", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOGreaterThan(String value) {
            addCriterion("typeNO >", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOGreaterThanOrEqualTo(String value) {
            addCriterion("typeNO >=", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOLessThan(String value) {
            addCriterion("typeNO <", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOLessThanOrEqualTo(String value) {
            addCriterion("typeNO <=", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOLike(String value) {
            addCriterion("typeNO like", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNONotLike(String value) {
            addCriterion("typeNO not like", value, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOIn(List<String> values) {
            addCriterion("typeNO in", values, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNONotIn(List<String> values) {
            addCriterion("typeNO not in", values, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNOBetween(String value1, String value2) {
            addCriterion("typeNO between", value1, value2, "typeNO");
            return (Criteria) this;
        }

        public Criteria andTypeNONotBetween(String value1, String value2) {
            addCriterion("typeNO not between", value1, value2, "typeNO");
            return (Criteria) this;
        }

        public Criteria andMoneyIsNull() {
            addCriterion("money is null");
            return (Criteria) this;
        }

        public Criteria andMoneyIsNotNull() {
            addCriterion("money is not null");
            return (Criteria) this;
        }

        public Criteria andMoneyEqualTo(BigDecimal value) {
            addCriterion("money =", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotEqualTo(BigDecimal value) {
            addCriterion("money <>", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyGreaterThan(BigDecimal value) {
            addCriterion("money >", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("money >=", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyLessThan(BigDecimal value) {
            addCriterion("money <", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("money <=", value, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyIn(List<BigDecimal> values) {
            addCriterion("money in", values, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotIn(List<BigDecimal> values) {
            addCriterion("money not in", values, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("money between", value1, value2, "money");
            return (Criteria) this;
        }

        public Criteria andMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("money not between", value1, value2, "money");
            return (Criteria) this;
        }

        public Criteria andLoanTermIsNull() {
            addCriterion("loanTerm is null");
            return (Criteria) this;
        }

        public Criteria andLoanTermIsNotNull() {
            addCriterion("loanTerm is not null");
            return (Criteria) this;
        }

        public Criteria andLoanTermEqualTo(Integer value) {
            addCriterion("loanTerm =", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermNotEqualTo(Integer value) {
            addCriterion("loanTerm <>", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermGreaterThan(Integer value) {
            addCriterion("loanTerm >", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermGreaterThanOrEqualTo(Integer value) {
            addCriterion("loanTerm >=", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermLessThan(Integer value) {
            addCriterion("loanTerm <", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermLessThanOrEqualTo(Integer value) {
            addCriterion("loanTerm <=", value, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermIn(List<Integer> values) {
            addCriterion("loanTerm in", values, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermNotIn(List<Integer> values) {
            addCriterion("loanTerm not in", values, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermBetween(Integer value1, Integer value2) {
            addCriterion("loanTerm between", value1, value2, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andLoanTermNotBetween(Integer value1, Integer value2) {
            addCriterion("loanTerm not between", value1, value2, "loanTerm");
            return (Criteria) this;
        }

        public Criteria andDayRatesIsNull() {
            addCriterion("dayRates is null");
            return (Criteria) this;
        }

        public Criteria andDayRatesIsNotNull() {
            addCriterion("dayRates is not null");
            return (Criteria) this;
        }

        public Criteria andDayRatesEqualTo(BigDecimal value) {
            addCriterion("dayRates =", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesNotEqualTo(BigDecimal value) {
            addCriterion("dayRates <>", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesGreaterThan(BigDecimal value) {
            addCriterion("dayRates >", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("dayRates >=", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesLessThan(BigDecimal value) {
            addCriterion("dayRates <", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesLessThanOrEqualTo(BigDecimal value) {
            addCriterion("dayRates <=", value, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesIn(List<BigDecimal> values) {
            addCriterion("dayRates in", values, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesNotIn(List<BigDecimal> values) {
            addCriterion("dayRates not in", values, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("dayRates between", value1, value2, "dayRates");
            return (Criteria) this;
        }

        public Criteria andDayRatesNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("dayRates not between", value1, value2, "dayRates");
            return (Criteria) this;
        }

        public Criteria andRateSumIsNull() {
            addCriterion("rateSum is null");
            return (Criteria) this;
        }

        public Criteria andRateSumIsNotNull() {
            addCriterion("rateSum is not null");
            return (Criteria) this;
        }

        public Criteria andRateSumEqualTo(BigDecimal value) {
            addCriterion("rateSum =", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumNotEqualTo(BigDecimal value) {
            addCriterion("rateSum <>", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumGreaterThan(BigDecimal value) {
            addCriterion("rateSum >", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("rateSum >=", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumLessThan(BigDecimal value) {
            addCriterion("rateSum <", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumLessThanOrEqualTo(BigDecimal value) {
            addCriterion("rateSum <=", value, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumIn(List<BigDecimal> values) {
            addCriterion("rateSum in", values, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumNotIn(List<BigDecimal> values) {
            addCriterion("rateSum not in", values, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rateSum between", value1, value2, "rateSum");
            return (Criteria) this;
        }

        public Criteria andRateSumNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("rateSum not between", value1, value2, "rateSum");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyIsNull() {
            addCriterion("serviceMoney is null");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyIsNotNull() {
            addCriterion("serviceMoney is not null");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyEqualTo(BigDecimal value) {
            addCriterion("serviceMoney =", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyNotEqualTo(BigDecimal value) {
            addCriterion("serviceMoney <>", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyGreaterThan(BigDecimal value) {
            addCriterion("serviceMoney >", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("serviceMoney >=", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyLessThan(BigDecimal value) {
            addCriterion("serviceMoney <", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("serviceMoney <=", value, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyIn(List<BigDecimal> values) {
            addCriterion("serviceMoney in", values, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyNotIn(List<BigDecimal> values) {
            addCriterion("serviceMoney not in", values, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("serviceMoney between", value1, value2, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andServiceMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("serviceMoney not between", value1, value2, "serviceMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueRateIsNull() {
            addCriterion("overdueRate is null");
            return (Criteria) this;
        }

        public Criteria andOverdueRateIsNotNull() {
            addCriterion("overdueRate is not null");
            return (Criteria) this;
        }

        public Criteria andOverdueRateEqualTo(BigDecimal value) {
            addCriterion("overdueRate =", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateNotEqualTo(BigDecimal value) {
            addCriterion("overdueRate <>", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateGreaterThan(BigDecimal value) {
            addCriterion("overdueRate >", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("overdueRate >=", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateLessThan(BigDecimal value) {
            addCriterion("overdueRate <", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("overdueRate <=", value, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateIn(List<BigDecimal> values) {
            addCriterion("overdueRate in", values, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateNotIn(List<BigDecimal> values) {
            addCriterion("overdueRate not in", values, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("overdueRate between", value1, value2, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("overdueRate not between", value1, value2, "overdueRate");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyIsNull() {
            addCriterion("overdueMoney is null");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyIsNotNull() {
            addCriterion("overdueMoney is not null");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyEqualTo(BigDecimal value) {
            addCriterion("overdueMoney =", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyNotEqualTo(BigDecimal value) {
            addCriterion("overdueMoney <>", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyGreaterThan(BigDecimal value) {
            addCriterion("overdueMoney >", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("overdueMoney >=", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyLessThan(BigDecimal value) {
            addCriterion("overdueMoney <", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyLessThanOrEqualTo(BigDecimal value) {
            addCriterion("overdueMoney <=", value, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyIn(List<BigDecimal> values) {
            addCriterion("overdueMoney in", values, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyNotIn(List<BigDecimal> values) {
            addCriterion("overdueMoney not in", values, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("overdueMoney between", value1, value2, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andOverdueMoneyNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("overdueMoney not between", value1, value2, "overdueMoney");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIsNull() {
            addCriterion("repayMethod is null");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIsNotNull() {
            addCriterion("repayMethod is not null");
            return (Criteria) this;
        }

        public Criteria andRepayMethodEqualTo(String value) {
            addCriterion("repayMethod =", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotEqualTo(String value) {
            addCriterion("repayMethod <>", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodGreaterThan(String value) {
            addCriterion("repayMethod >", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodGreaterThanOrEqualTo(String value) {
            addCriterion("repayMethod >=", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodLessThan(String value) {
            addCriterion("repayMethod <", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodLessThanOrEqualTo(String value) {
            addCriterion("repayMethod <=", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodLike(String value) {
            addCriterion("repayMethod like", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotLike(String value) {
            addCriterion("repayMethod not like", value, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodIn(List<String> values) {
            addCriterion("repayMethod in", values, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotIn(List<String> values) {
            addCriterion("repayMethod not in", values, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodBetween(String value1, String value2) {
            addCriterion("repayMethod between", value1, value2, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRepayMethodNotBetween(String value1, String value2) {
            addCriterion("repayMethod not between", value1, value2, "repayMethod");
            return (Criteria) this;
        }

        public Criteria andRedRateIsNull() {
            addCriterion("redRate is null");
            return (Criteria) this;
        }

        public Criteria andRedRateIsNotNull() {
            addCriterion("redRate is not null");
            return (Criteria) this;
        }

        public Criteria andRedRateEqualTo(BigDecimal value) {
            addCriterion("redRate =", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateNotEqualTo(BigDecimal value) {
            addCriterion("redRate <>", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateGreaterThan(BigDecimal value) {
            addCriterion("redRate >", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("redRate >=", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateLessThan(BigDecimal value) {
            addCriterion("redRate <", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateLessThanOrEqualTo(BigDecimal value) {
            addCriterion("redRate <=", value, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateIn(List<BigDecimal> values) {
            addCriterion("redRate in", values, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateNotIn(List<BigDecimal> values) {
            addCriterion("redRate not in", values, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("redRate between", value1, value2, "redRate");
            return (Criteria) this;
        }

        public Criteria andRedRateNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("redRate not between", value1, value2, "redRate");
            return (Criteria) this;
        }
    }

    /**
     * jyh_loan_type
     *
     * @mbggenerated do_not_delete_during_merge 2017-10-17
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    /**
     * jyh_loan_type 2017-10-17
     */
    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}